package educar.controllers;

import java.sql.SQLException;

import educar.gui.BajaCargoView;
import educar.gui.IView;
import educar.models.Cargo;
import educar.models.Dedicacion;
import educar.models.poseeCargo;
import educar.db.JPA;
public class BajaCargoController implements IController {
    private BajaCargoView com;  
    private JPA jpa=new JPA();
    private Cargo cargo;
    private poseeCargo poseeCargo;
    
    public void process(String model){
    	String dni=com.getDni();
    	String nomCargo= com.getCargo();
    	String facultad=com.getFacultad();
    	String id= null;
    	String [] codPoseeCargo=null;
    	String [] codigoCargo=null;
    	String [] codFacCargo=null;
    	Boolean condicion;
    	Boolean cond;
    	
    	
    	try {
			codigoCargo=jpa.getConsulta("cargo", "codigo", "descripcion='"+nomCargo+"'");
			id=jpa.getConsulta("facultad", "id", "nombre='"+facultad+"'")[0];
			codFacCargo=jpa.getConsulta("facultadCargo", "codigo", "id='"+id+"'");
			codPoseeCargo=jpa.getConsulta("poseeCargo", "codigo", "dni='"+dni+"'");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		condicion=(!jpa.NoExistente("cargo", "descripcion","descripcion='"+nomCargo+"'" )&& !(jpa.NoExistente("facultad", "nombre","nombre='"+facultad+"'" ))
				&& !(jpa.NoExistente("poseeCargo", "dni","dni='"+dni+"'" )));
		cond=(!(nomCargo.length()==0)&&!(codigoCargo.length==0)&&!(dni.length()==0));
		
    	if (condicion && cond){
    		Boolean encontrado=false;
    		for (int i=0;i<codigoCargo.length;i++){
    			for (int j=0;j<codFacCargo.length;j++){
    				for (int k=0;k<codPoseeCargo.length;k++){
    					if ((codigoCargo[i].equals(codFacCargo[j]))&&(codFacCargo[j].equals(codPoseeCargo[0]))){
    						poseeCargo= new poseeCargo(dni,Integer.parseInt(codigoCargo[i]));
    						poseeCargo.destroy(dni,codigoCargo[i]);
    						com.present("El cargo ha sido eliminado exitosamente");
    						encontrado=true;
    						break;
    					}
    				}
    			}
    		}
    		if (encontrado){
    			com.setVisible(false);
    		}
    		else{
    			com.present("ERROR! \n No es posible realizar la operacion deseada");
    		}
    	}
		else{
			com.present("ERROR! \n No es posible realizar la operacion deseada");
		}
    	
    	
    	
    }

    @Override
    public void setView(IView com) {
            this.com = (BajaCargoView) com;   
    } 

}
